package com.yanjr.modules.sys.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.yanjr.common.persistence.Page;
import com.yanjr.modules.sys.entity.Menu;
import com.yanjr.modules.sys.entity.Role;
import com.yanjr.modules.sys.entity.User;

/**
 * @ClassName: SystemService 
 * @Description: 系统管理，安全相关实体的管理类,包括用户、角色、菜单.
 * @author yanjr big123@126.com 
 * @date 2016年3月8日 上午9:21:00
 */
@Service
public interface SystemService {
	
	//-- User Service --//
	public User getUser(String id);
	
	public Page<User> findUser(Page<User> page, User user);

	//取用户的数据范围
	public String getDataScope(User user);
	
	public User getUserByLoginName(String loginName);

	public void saveUser(User user);

	/**
	 * Delete the User by userId
	 * 	Logical deletion
	 * 
	 * @param id
	 * @author yanjr
	 */
	public void deleteUser(String id);
	
	public void updatePasswordById(String id, String loginName, String newPassword);
	
	public void updateUserLoginInfo(String id);
	
	//-- Role Service --//
	public Role getRole(String id);

	public Role findRoleByName(String name);
	
	public List<Role> findAllRole();
	
	public void saveRole(Role role);

	public void deleteRole(String id);
	
	public Boolean outUserInRole(Role role, String userId);
	
	public User assignUserToRole(Role role, String userId);

	//-- Menu Service --//
	public Menu getMenu(String id);

	public List<Menu> findAllMenu();
	
	public void saveMenu(Menu menu);

	public void deleteMenu(String id);

	

	
	
	
}
